This invention relates in general to preparation of an image containing a perspective view of a portion of an approximately spherical surface and, more particularly, to rapid and efficient determination of level of detail information suitable for controlling various factors involved in the preparation of the perspective view, such as the resolution of image data to be used, and adaptive tessellation of the surface.
The use of computers has rapidly increased in recent years, and a variety of different applications have evolved. One such application uses computer graphics to visually simulate a perspective view of a portion of an approximately spherical surface. For example, this might involve the preparation of a perspective view, for display on a computer monitor, of one or more planets. A planet can be viewed from many different distances and angles. Consequently, the highest resolution data is not always needed. However, when several sets of image data are provided, which each correspond to the surface of the planet at a different level of resolution, the total amount of data which must be managed can become enormous, particularly for higher resolution levels. A related consideration is that, during the process of preparing the perspective view, the surface of the planet is conceptually subdivided by the computer, to a degree sufficient to obtain an accurate mapping of the selected image data into the perspective view. This subdivision is known in the art as tessellation, and a decision need to be made as to how far to tessellate.
There are existing mapping programs which will take several sets of image data at different resolutions, and carry out calculations which select an appropriate resolution level and an appropriate degree of tessellation for each portion of the object which will appear in the perspective view. However, in order to obtain optimal, fine-grained results, these program must carry out a separate set of calculations for each vertex point of various polygons which are created during the subdivision process, and this can involve complex and extensive computations for each vertex point. In particular, these computations for each vertex point usually involve calls to one or more routines that calculate exponential functions, such as a square root value or a logarithm value, and/or calls to one or more routines that each calculate a trigonometric function, such as a sine value or cosine value, all of which are extremely time-consuming calculations for a computer. In addition, these existing programs tend to transform information to xe2x80x9cscreen spacexe2x80x9d before carrying out certain calculations, which takes up still more time.
It is possible to add specialized mapping hardware to a computer in order to support some of these programs, by performing some calculations in hardware faster than they could be performed by software. However, this increases the overall cost of the system, and still does not yield a level of speed and efficiency which is satisfactory for some applications involving tight real-time considerations. Thus, while existing programs of this type, and any associated mapping hardware, have been generally adequate for their intended purposes, they have not been satisfactory in all respects.
From the foregoing, it may be appreciated that a need has arisen for a method and apparatus which will facilitate the rapid and efficient calculation of information suitable for use in preparing an image containing a perspective view of a portion of an approximately spherical surface. According to the present invention, a method and apparatus are provided to meet this need, and involve preparing a perspective view, relative to an eyepoint, of a surface section having an approximately spherical curvature, the preparing step including the step of mapping image information from a database into the perspective view, the preparing step being carried out as a function of a logarithm of a value which in turn is a function of a distance from the eyepoint to a point on the surface section.